/*
 * task_sys.c
 *
 *  Created on: 2016-11-9
 *      Author: m
 */
#include "task_sys.h"
#include "proc.h"
#include "syscall.h"
#include "global.h"
#include "string.h"

void task_sys() {
    MESSAGE msg;
    while(1) {
        post(FN_RECV, TASK_ANY, &msg);
        switch(msg.type) {
        case MT_GET_TICKS:
            *(int*)msg.data = g_ticks;
            post(FN_SEND, msg.req_pid, &msg);
            break;
        default:
            break;
        }
    }
}

int get_ticks() {
    MESSAGE msg; //必须是线程安全的
    memset(&msg, 0, sizeof(msg));
    msg.type = MT_GET_TICKS;
    post(FN_BOTH, TASK_IDX_SYS, &msg);
    return *(int*)msg.data;
}
